The present invention relates to the field of disk arrays, and more particularly to a Redundant Array of Independent Disks (RAID) system that implements an integrated RAID comprising a software RAID and a hardware RAID.
A network server, e.g., file server, database server, web server, may be configured to receive a stream of requests from clients in a network system to read from or write to a particular logical drive in an array of logical drives such as a Redundant Array of Independent Disks (RAID). These requests may form what is commonly referred to as a xe2x80x9cworkloadxe2x80x9d for the network server. That is, a workload may refer to the requests that need to be serviced by the network server. The network server may be coupled to the RAID via one or more adapters commonly referred to as RAID adapters. Each RAID adapter may be coupled to one or more logical drives and to the network server.
In RAID systems, data is spread or xe2x80x9cstripedxe2x80x9d across multiple disk logical drives. In many implementations, the data is stored in conjunction with parity information such that any data lost as a result of a single logical drive failure may be automatically reconstructed.
One type of RAID implementation is commonly referred to as xe2x80x9csoftware RAID.xe2x80x9d Software RAID may refer to the implementation where software on the network server, which may be part of the operating system on the network server, may be used to implement the various RAID control functions. These control functions may include, for example, generating drive specific read/write requests according to a striping algorithm, reconstructing lost data when drive failures occur, generating and checking parity, etc.
Another type of RAID implementation is commonly referred to as xe2x80x9chardware RAID.xe2x80x9d Hardware RAID may refer to the implementation where an application configured to implement the various RAID control functions as described above may be loaded into Random Access Memory (RAM) in a RAID adapter. In the hardware RAID implementation, the processor in the network server may be configured to interpret and transmit the workload requests to the appropriate RAID adapter so that the appropriate hardware RAID will service the workload request.
In certain environments, hardware RAID has been perceived to be advantageous over software RAID; while in other environments, software RAID has been perceived to be advantageous over hardware RAID. At least in part these environments depend on the type of workload, i.e., the type of requests issued by the clients to the network server. For example, a hardware RAID may be desirable to service a workload that comprises a high percentage of web requests that are user intensive since the hardware RAID may be used to process the workload requests thereby freeing the processor in the network server to service other types of requests. A disadvantage of hardware RAID though is that the processor of the RAID adapter comprising the hardware RAID may service the workload requests at a lower rate than the processor in the network server subsequently creating what is commonly referred to as a xe2x80x9cbottleneck.xe2x80x9d A bottleneck may refer to the phenomena when the RAID adapter cannot service the workload requests at the rate the requests are transmitted from the network server. A solution may in part be to replace the RAID adapter with a more expensive RAID adapter that can process the workload requests at a faster rate, i.e., replace the RAID adapter with a RAID adapter that has a faster execution speed. However, that may add to the cost of the hardware implementation which may already be more expensive to implement than the software RAID implementation. Subsequently, it may be desirable to implement a software RAID instead of a hardware RAID to service a workload that comprises a high percentage of requests that are not user intensive, e.g., file requests to read from or write to one of the disks of the RAID.
It would therefore be desirable to develop an integrated RAID system comprising a software RAID and a hardware RAID where the integrated RAID system selects implementing either the software RAID or the hardware RAID based on which implementation is more desirable to service all or part of the workload requests. By developing an integrated RAID system, load balancing between the processor in the network server and in the RAID adapter may be accomplished thereby eliminating the bottleneck phenomena in the hardware RAID implementation. That is, the processor in the network server and in the RAID adapter may process the workload requests at a substantially similar rate thereby eliminating the bottleneck phenomena in the hardware RAID implementation. Furthermore, because load balancing may be accomplished between the network server and in the RAID adapter, there may be improved scalability. That is, an increase in the workload requests to be processed by the hardware RAID in the RAID adapter may be accomplished without necessarily replacing the RAID adapter with a RAID adapter that has a faster execution speed.
The problems outlined above may at least in part be solved in some embodiments by an integrated RAID system comprising a software RAID and a hardware RAID that selects implementing either the software RAID or the hardware RAID based on which implementation is more desirable to service all or part of the workload requests.
In one embodiment of the present invention, a method for servicing workload requests by selecting either a software RAID or a hardware RAID to service all or part of the workload requests may comprise the step of a server receiving a stream of requests to read from or write to particular Logical Block Addresses (LBA""s) in one or more logical drives in a RAID from one or more clients. A software RAID may refer to the implementation where the server may comprise a memory unit operable for storing software configured to handle RAID control functions. The server may be coupled to one or more RAID adapters that are coupled to the RAID. A hardware RAID may refer to the implementation where an application configured to handle the various RAID control functions may be loaded into Random Access Memory (RAM) in a RAID adapter.
The utilization of the processor, i.e., the percentage of processor cycles utilized to process instructions, may then be monitored in the server. Furthermore, the utilization of the processor, i.e., the percentage of processor cycles utilized to process instructions, may be monitored in each RAID adapter coupled to the server.
A determination may then be made as to whether the processor of the server is fully utilized, i.e., operating at one hundred percent (100%) utilization. If the processor of the server is fully utilized, i.e., operating at one hundred percent (100%) utilization, then a determination may be made as to whether the processor of a RAID adapter is fully utilized, i.e., operating at one hundred percent (100%) utilization. It is noted that the determination may be made as to whether the processor in each RAID adapter coupled to the server is fully utilized, i.e., operating at one hundred percent (100%) utilization.
If the processor of the RAID adapter is not fully utilized, i.e., not operating at one hundred percent (100%) utilization, then those requests in the received stream of requests with logical block addresses that are serviceable by that RAID adapter may be routed to that RAID adapter to be serviced by the hardware RAID in that RAID adapter. Those requests with logical block addresses serviceable by the RAID adapter may be routed to that RAID adapter to be serviced by the hardware RAID since the processor of that RAID adapter has the capacity to execute various RAID control functions and the processor in the server does not have the capacity to execute various RAID control functions.
If the processor of the RAID adapter is fully utilized, i.e., operating at one hundred percent (100%) utilization, then, a first portion of the received stream of requests with LBA""s that are serviceable by that RAID adapter may be routed to the server to be serviced by the software RAID and a second portion of the received stream of requests with LBA""s that are serviceable by the RAID adapter may be routed to that RAID adapter to be serviced by the hardware RAID. These requests may be serviced by the software RAID and the hardware RAID upon the respective processors having capacity to execute the RAID control functions. The first and second portions may be determined based on a ratio of the execution speeds of the respective processors.
For example, the portion of requests to be routed to the server to be serviced by the software RAID may be determined by the following formula:
Rserver=MIPSserer/(MIPSserer+MIPSadapter)
where Rserver may be the fraction of the requests received with LBA""s that are serviceable by the RAID adapter that are to be routed to the server to be serviced by the software RAID; where MIPSserer may be the execution speed of the processor the server, i.e., the Millions Instructions Per Second (MIPS) rating for the processor of the server; where MIPSadapter may be the execution speed of the processor of the RAID adapter, i.e., the MIPS rating for the processor of the RAID adapter configured to service the LBA""s of these requests.
Similarly, the portion of requests to be routed to the RAID adapter to be serviced by the hardware RAID may be determined by the following formula:
Radapter=MIPSadapter/(MIPSserver+MIPSadapter)
where Radapter may be the fraction of the requests received with LBA""s that are serviceable by the RAID adapter that are to be routed to the that RAID adapter to be serviced by the hardware RAID; where MIPSserer may be the MIPS rating for the processor of the server; where MIPSadapter may be the MIPS rating for the processor of the RAID adapter configured to service the LBA""s of these requests.
If, for example, the MIPS rating for the processor of the server is 40 MIPS and the MIPS rating for the processor of the RAID adapter is 20 MIPS, then two-thirds (⅔) of the requests received with LBA""s that are serviceable by the RAID adapter may be routed to the server to be serviced by the software RAID. One-third (⅓)) of the requests received with LBA""s that are serviceable by the RAID adapter may subsequently be routed to that RAID adapter to be serviced by the hardware RAID.
The above description described the two cases when the processor of the server is fully utilized. However, if the processor of the server is not fully utilized, i.e., operating at one hundred percent (100%) utilization, then a determination may be made as to whether the processor of the RAID adapter is fully utilized, i.e., operating at one hundred percent (100%) utilization. It is noted that a determination may be made as to whether the processor in each RAID adapter coupled to the server is fully utilized, i.e., operating at one hundred percent (100%) utilization.
If the processor of the RAID adapter is fully utilized, i.e., operating at one hundred percent (100%) utilization, then those requests in the received stream of requests with logical block addresses that are serviceable by that RAID adapter may be routed to the server to be serviced by the software RAID. Those requests with logical block addresses that are serviceable by the RAID adapter may be routed to the server to be serviced by the software RAID since the processor of the server has the capacity to execute various RAID control functions and the processor in the RAID adapter does not have the capacity to execute the various RAID control functions.
If the processor of the RAID adapter is not filly utilized, i.e., not operating at one hundred percent (100%) utilization, then a first portion of the received stream of requests with LBA""s that are serviceable by that RAID adapter may be routed to the server to be serviced by the software RAID and a second portion of the received stream of requests with LBA""s that are serviceable by that RAID adapter may be routed to that RAID adapter to be serviced by the hardware RAID. The first and second portions may be determined based on a ratio of the execution speeds of the respective processors as described above.
The foregoing has outlined rather broadly the features and technical advantages of one or more embodiments of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.